/*
 * main.c
 *
 *  Created on: 08/05/2011
 *      Author: sheila
 */

#include <stdio.h>
#include <stdlib.h>
#include "funcoes.h"
#include <math.h>

int main(){

	no *p;
	no *lixo;
	p=NULL;
	lixo=NULL;

	int j,resultado,raiz;
	int i,n;



	j=1;
	scanf("%d",&n);
	resultado=(1<<n);
	raiz=resultado/2;
	while(j!=raiz){
		for(i=j;i<resultado;i=i+j*2){
			insere_topo(i,&p);
		}
		j=j*2;
	}
	insere_topo(j,&p);

	imprime(p,0);

	if(p->chave==2){
			rot_dir(&p);
			printf("\n\n");
			imprime(p,0);
			return 0;
	}

	else{
		sobe_menor(&p);
		while(p!=NULL) lista(&p,&lixo);

		imprime(lixo,0);

	}



return 0; }
